<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.7"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>OrbbecSDK: E:/Projects/Jenkins/workspace/OrbbecSDK/libobsensor/include/libobsensor/h/MultipleDevices.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr id="projectrow">
  <td id="projectlogo"><img alt="Logo" src="orbbec_icon.png"/></td>
  <td id="projectalign">
   <div id="projectname">OrbbecSDK<span id="projectnumber">&#160;1.10.5</span>
   </div>
   <div id="projectbrief">OrbbecSDK: Software-Development-Kit for Orbbec 3D Cameras</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.7 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_8195f5c0d9a800b311ff87242d342361.html">libobsensor</a></li><li class="navelem"><a class="el" href="dir_9fda3634bd985c8b3aac4c1dd5078468.html">h</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#define-members">Macros</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle"><div class="title">MultipleDevices.h File Reference</div></div>
</div><!--header-->
<div class="contents">

<p>This file contains the multiple devices related API witch is used to control the synchronization between multiple devices and the synchronization between different sensor within single device.  
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &quot;<a class="el" href="ObTypes_8h_source.html">ObTypes.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="Device_8h_source.html">Device.h</a>&quot;</code><br />
</div>
<p><a href="MultipleDevices_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="define-members" name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:ace7ff470963cf026bd05166caaee9ce2"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="MultipleDevices_8h.html#ace7ff470963cf026bd05166caaee9ce2">ob_device_timer_reset</a>&#160;&#160;&#160;<a class="el" href="MultipleDevices_8h.html#acaba609185cfe990f2614ed3eb6df82f">ob_device_timestamp_reset</a></td></tr>
<tr class="memdesc:ace7ff470963cf026bd05166caaee9ce2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Alias for <a class="el" href="MultipleDevices_8h.html#acaba609185cfe990f2614ed3eb6df82f">ob_device_timestamp_reset</a> since it is more accurate.  <br /></td></tr>
<tr class="separator:ace7ff470963cf026bd05166caaee9ce2"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:adaca940a602a04e4a366ffdb1210386c"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="MultipleDevices_8h.html#adaca940a602a04e4a366ffdb1210386c">ob_device_get_supported_multi_device_sync_mode_bitmap</a> (<a class="el" href="ObTypes_8h.html#a3c87c98acfd9b143bb58c731d95fa437">ob_device</a> *device, <a class="el" href="structob__error.html">ob_error</a> **error)</td></tr>
<tr class="memdesc:adaca940a602a04e4a366ffdb1210386c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the supported multi device sync mode bitmap of the device.  <br /></td></tr>
<tr class="separator:adaca940a602a04e4a366ffdb1210386c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0a4ee062f6b3d2b52eaa9d0eb080de79"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="MultipleDevices_8h.html#a0a4ee062f6b3d2b52eaa9d0eb080de79">ob_device_set_multi_device_sync_config</a> (<a class="el" href="ObTypes_8h.html#a3c87c98acfd9b143bb58c731d95fa437">ob_device</a> *device, const <a class="el" href="structob__multi__device__sync__config.html">ob_multi_device_sync_config</a> *config, <a class="el" href="structob__error.html">ob_error</a> **error)</td></tr>
<tr class="memdesc:a0a4ee062f6b3d2b52eaa9d0eb080de79"><td class="mdescLeft">&#160;</td><td class="mdescRight">set the multi device sync configuration of the device.  <br /></td></tr>
<tr class="separator:a0a4ee062f6b3d2b52eaa9d0eb080de79"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4d233a903c9abc491f668a9216c4773a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structob__multi__device__sync__config.html">ob_multi_device_sync_config</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="MultipleDevices_8h.html#a4d233a903c9abc491f668a9216c4773a">ob_device_get_multi_device_sync_config</a> (<a class="el" href="ObTypes_8h.html#a3c87c98acfd9b143bb58c731d95fa437">ob_device</a> *device, <a class="el" href="structob__error.html">ob_error</a> **error)</td></tr>
<tr class="memdesc:a4d233a903c9abc491f668a9216c4773a"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the multi device sync configuration of the device.  <br /></td></tr>
<tr class="separator:a4d233a903c9abc491f668a9216c4773a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a686e2dcdc402e88b116ac55e2bb2e354"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="MultipleDevices_8h.html#a686e2dcdc402e88b116ac55e2bb2e354">ob_device_trigger_capture</a> (<a class="el" href="ObTypes_8h.html#a3c87c98acfd9b143bb58c731d95fa437">ob_device</a> *device, <a class="el" href="structob__error.html">ob_error</a> **error)</td></tr>
<tr class="memdesc:a686e2dcdc402e88b116ac55e2bb2e354"><td class="mdescLeft">&#160;</td><td class="mdescRight">send the capture command to the device.  <br /></td></tr>
<tr class="separator:a686e2dcdc402e88b116ac55e2bb2e354"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a293ead22918e776ce10334e26e20d313"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="MultipleDevices_8h.html#a293ead22918e776ce10334e26e20d313">ob_device_set_timestamp_reset_config</a> (<a class="el" href="ObTypes_8h.html#a3c87c98acfd9b143bb58c731d95fa437">ob_device</a> *device, const <a class="el" href="structob__device__timestamp__reset__config.html">ob_device_timestamp_reset_config</a> *config, <a class="el" href="structob__error.html">ob_error</a> **error)</td></tr>
<tr class="memdesc:a293ead22918e776ce10334e26e20d313"><td class="mdescLeft">&#160;</td><td class="mdescRight">set the timestamp reset configuration of the device.  <br /></td></tr>
<tr class="separator:a293ead22918e776ce10334e26e20d313"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a32c8b85142a200efac0a4df723c06010"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structob__device__timestamp__reset__config.html">ob_device_timestamp_reset_config</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="MultipleDevices_8h.html#a32c8b85142a200efac0a4df723c06010">ob_device_get_timestamp_reset_config</a> (<a class="el" href="ObTypes_8h.html#a3c87c98acfd9b143bb58c731d95fa437">ob_device</a> *device, <a class="el" href="structob__error.html">ob_error</a> **error)</td></tr>
<tr class="memdesc:a32c8b85142a200efac0a4df723c06010"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the timestamp reset configuration of the device.  <br /></td></tr>
<tr class="separator:a32c8b85142a200efac0a4df723c06010"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acaba609185cfe990f2614ed3eb6df82f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="MultipleDevices_8h.html#acaba609185cfe990f2614ed3eb6df82f">ob_device_timestamp_reset</a> (<a class="el" href="ObTypes_8h.html#a3c87c98acfd9b143bb58c731d95fa437">ob_device</a> *device, <a class="el" href="structob__error.html">ob_error</a> **error)</td></tr>
<tr class="memdesc:acaba609185cfe990f2614ed3eb6df82f"><td class="mdescLeft">&#160;</td><td class="mdescRight">send the timestamp reset command to the device.  <br /></td></tr>
<tr class="separator:acaba609185cfe990f2614ed3eb6df82f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3c4c68af4d9217991d87c128c593cd36"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="MultipleDevices_8h.html#a3c4c68af4d9217991d87c128c593cd36">ob_device_timer_sync_with_host</a> (<a class="el" href="ObTypes_8h.html#a3c87c98acfd9b143bb58c731d95fa437">ob_device</a> *device, <a class="el" href="structob__error.html">ob_error</a> **error)</td></tr>
<tr class="memdesc:a3c4c68af4d9217991d87c128c593cd36"><td class="mdescLeft">&#160;</td><td class="mdescRight">synchronize the timer of the device with the host.  <br /></td></tr>
<tr class="separator:a3c4c68af4d9217991d87c128c593cd36"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>This file contains the multiple devices related API witch is used to control the synchronization between multiple devices and the synchronization between different sensor within single device. </p>
<p>The synchronization between multiple devices is complex, and different models have different synchronization modes and limitations. please refer to the product manual for details.</p>
<p>As the Depth and Infrared are the same sensor physically, the behavior of the Infrared is same as the Depth in the synchronization mode. </p>

<p class="definition">Definition in file <a class="el" href="MultipleDevices_8h_source.html">MultipleDevices.h</a>.</p>
</div><h2 class="groupheader">Macro Definition Documentation</h2>
<a id="ace7ff470963cf026bd05166caaee9ce2" name="ace7ff470963cf026bd05166caaee9ce2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ace7ff470963cf026bd05166caaee9ce2">&#9670;&#160;</a></span>ob_device_timer_reset</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define ob_device_timer_reset&#160;&#160;&#160;<a class="el" href="MultipleDevices_8h.html#acaba609185cfe990f2614ed3eb6df82f">ob_device_timestamp_reset</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Alias for <a class="el" href="MultipleDevices_8h.html#acaba609185cfe990f2614ed3eb6df82f">ob_device_timestamp_reset</a> since it is more accurate. </p>

<p class="definition">Definition at line <a class="el" href="MultipleDevices_8h_source.html#l00106">106</a> of file <a class="el" href="MultipleDevices_8h_source.html">MultipleDevices.h</a>.</p>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="adaca940a602a04e4a366ffdb1210386c" name="adaca940a602a04e4a366ffdb1210386c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adaca940a602a04e4a366ffdb1210386c">&#9670;&#160;</a></span>ob_device_get_supported_multi_device_sync_mode_bitmap()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint16_t ob_device_get_supported_multi_device_sync_mode_bitmap </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="ObTypes_8h.html#a3c87c98acfd9b143bb58c731d95fa437">ob_device</a> *&#160;</td>
          <td class="paramname"><em>device</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structob__error.html">ob_error</a> **&#160;</td>
          <td class="paramname"><em>error</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the supported multi device sync mode bitmap of the device. </p>
<p>For example, if the return value is 0b00001100, it means the device supports <a class="el" href="ObTypes_8h.html#aabad929b67059752029c3374594ac63ba8e2f43bf0dd49abc986b551b75e0a923">OB_MULTI_DEVICE_SYNC_MODE_PRIMARY</a> and <a class="el" href="ObTypes_8h.html#aabad929b67059752029c3374594ac63ba23edc51a18fc3047d5390a065f83e06c">OB_MULTI_DEVICE_SYNC_MODE_SECONDARY</a>. User can check the supported mode by the code: </p><div class="fragment"><div class="line"><span class="keywordflow">if</span>(supported_mode_bitmap &amp; <a class="code hl_enumvalue" href="ObTypes_8h.html#aabad929b67059752029c3374594ac63bad662690d57f70c078659e39b4e4b1a89">OB_MULTI_DEVICE_SYNC_MODE_FREE_RUN</a>){</div>
<div class="line">   <span class="comment">//support OB_MULTI_DEVICE_SYNC_MODE_FREE_RUN</span></div>
<div class="line">}</div>
<div class="line"><span class="keywordflow">if</span>(supported_mode_bitmap &amp; <a class="code hl_enumvalue" href="ObTypes_8h.html#aabad929b67059752029c3374594ac63ba6bd45c53211519f5392eab382e229225">OB_MULTI_DEVICE_SYNC_MODE_STANDALONE</a>){</div>
<div class="line">  <span class="comment">//support OB_MULTI_DEVICE_SYNC_MODE_STANDALONE</span></div>
<div class="line">}</div>
<div class="line"><span class="comment">// and so on</span></div>
<div class="ttc" id="aObTypes_8h_html_aabad929b67059752029c3374594ac63ba6bd45c53211519f5392eab382e229225"><div class="ttname"><a href="ObTypes_8h.html#aabad929b67059752029c3374594ac63ba6bd45c53211519f5392eab382e229225">OB_MULTI_DEVICE_SYNC_MODE_STANDALONE</a></div><div class="ttdeci">@ OB_MULTI_DEVICE_SYNC_MODE_STANDALONE</div><div class="ttdoc">standalone mode</div><div class="ttdef"><b>Definition</b> <a href="ObTypes_8h_source.html#l01232">ObTypes.h:1232</a></div></div>
<div class="ttc" id="aObTypes_8h_html_aabad929b67059752029c3374594ac63bad662690d57f70c078659e39b4e4b1a89"><div class="ttname"><a href="ObTypes_8h.html#aabad929b67059752029c3374594ac63bad662690d57f70c078659e39b4e4b1a89">OB_MULTI_DEVICE_SYNC_MODE_FREE_RUN</a></div><div class="ttdeci">@ OB_MULTI_DEVICE_SYNC_MODE_FREE_RUN</div><div class="ttdoc">free run mode</div><div class="ttdef"><b>Definition</b> <a href="ObTypes_8h_source.html#l01225">ObTypes.h:1225</a></div></div>
</div><!-- fragment --> <dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">device</td><td>The device handle. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">error</td><td>The error information. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>uint16_t return the supported multi device sync mode bitmap of the device. </dd></dl>

</div>
</div>
<a id="a0a4ee062f6b3d2b52eaa9d0eb080de79" name="a0a4ee062f6b3d2b52eaa9d0eb080de79"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0a4ee062f6b3d2b52eaa9d0eb080de79">&#9670;&#160;</a></span>ob_device_set_multi_device_sync_config()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ob_device_set_multi_device_sync_config </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="ObTypes_8h.html#a3c87c98acfd9b143bb58c731d95fa437">ob_device</a> *&#160;</td>
          <td class="paramname"><em>device</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structob__multi__device__sync__config.html">ob_multi_device_sync_config</a> *&#160;</td>
          <td class="paramname"><em>config</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structob__error.html">ob_error</a> **&#160;</td>
          <td class="paramname"><em>error</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>set the multi device sync configuration of the device. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">device</td><td>The device handle. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">config</td><td>The multi device sync configuration. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">error</td><td>The error information. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a4d233a903c9abc491f668a9216c4773a" name="a4d233a903c9abc491f668a9216c4773a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4d233a903c9abc491f668a9216c4773a">&#9670;&#160;</a></span>ob_device_get_multi_device_sync_config()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structob__multi__device__sync__config.html">ob_multi_device_sync_config</a> ob_device_get_multi_device_sync_config </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="ObTypes_8h.html#a3c87c98acfd9b143bb58c731d95fa437">ob_device</a> *&#160;</td>
          <td class="paramname"><em>device</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structob__error.html">ob_error</a> **&#160;</td>
          <td class="paramname"><em>error</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>get the multi device sync configuration of the device. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">device</td><td>The device handle. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">error</td><td>The error information. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="structob__multi__device__sync__config.html" title="The synchronization configuration of the device.">ob_multi_device_sync_config</a> return the multi device sync configuration of the device. </dd></dl>

</div>
</div>
<a id="a686e2dcdc402e88b116ac55e2bb2e354" name="a686e2dcdc402e88b116ac55e2bb2e354"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a686e2dcdc402e88b116ac55e2bb2e354">&#9670;&#160;</a></span>ob_device_trigger_capture()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ob_device_trigger_capture </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="ObTypes_8h.html#a3c87c98acfd9b143bb58c731d95fa437">ob_device</a> *&#160;</td>
          <td class="paramname"><em>device</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structob__error.html">ob_error</a> **&#160;</td>
          <td class="paramname"><em>error</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>send the capture command to the device. </p>
<p>The device will start one time image capture after receiving the capture command when it is in the <a class="el" href="ObTypes_8h.html#aabad929b67059752029c3374594ac63ba2fe8400ffd77e63929e69bb0f0ab1da6">OB_MULTI_DEVICE_SYNC_MODE_SOFTWARE_TRIGGERING</a></p>
<dl class="section attention"><dt>Attention</dt><dd>The frequency of the user call this function multiplied by the number of frames per trigger should be less than the frame rate of the stream. The number of frames per trigger can be set by framesPerTrigger. </dd>
<dd>
For some models，receive and execute the capture command will have a certain delay and performance consumption, so the frequency of calling this function should not be too high, please refer to the product manual for the specific supported frequency. </dd>
<dd>
If the device is not in the <a class="el" href="ObTypes_8h.html#aabad929b67059752029c3374594ac63ba39ca63ef583695c083588ae28ea22ad9">OB_MULTI_DEVICE_SYNC_MODE_HARDWARE_TRIGGERING</a> mode, device will ignore the capture command.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">device</td><td>The device handle. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">error</td><td>The error information. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a293ead22918e776ce10334e26e20d313" name="a293ead22918e776ce10334e26e20d313"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a293ead22918e776ce10334e26e20d313">&#9670;&#160;</a></span>ob_device_set_timestamp_reset_config()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ob_device_set_timestamp_reset_config </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="ObTypes_8h.html#a3c87c98acfd9b143bb58c731d95fa437">ob_device</a> *&#160;</td>
          <td class="paramname"><em>device</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structob__device__timestamp__reset__config.html">ob_device_timestamp_reset_config</a> *&#160;</td>
          <td class="paramname"><em>config</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structob__error.html">ob_error</a> **&#160;</td>
          <td class="paramname"><em>error</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>set the timestamp reset configuration of the device. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">device</td><td>The device handle. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">config</td><td>The timestamp reset configuration. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">error</td><td>The error information. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a32c8b85142a200efac0a4df723c06010" name="a32c8b85142a200efac0a4df723c06010"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a32c8b85142a200efac0a4df723c06010">&#9670;&#160;</a></span>ob_device_get_timestamp_reset_config()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structob__device__timestamp__reset__config.html">ob_device_timestamp_reset_config</a> ob_device_get_timestamp_reset_config </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="ObTypes_8h.html#a3c87c98acfd9b143bb58c731d95fa437">ob_device</a> *&#160;</td>
          <td class="paramname"><em>device</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structob__error.html">ob_error</a> **&#160;</td>
          <td class="paramname"><em>error</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>get the timestamp reset configuration of the device. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">device</td><td>The device handle. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">error</td><td>The error information. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="structob__device__timestamp__reset__config.html" title="The timestamp reset configuration of the device.">ob_device_timestamp_reset_config</a> return the timestamp reset configuration of the device. </dd></dl>

</div>
</div>
<a id="acaba609185cfe990f2614ed3eb6df82f" name="acaba609185cfe990f2614ed3eb6df82f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acaba609185cfe990f2614ed3eb6df82f">&#9670;&#160;</a></span>ob_device_timestamp_reset()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ob_device_timestamp_reset </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="ObTypes_8h.html#a3c87c98acfd9b143bb58c731d95fa437">ob_device</a> *&#160;</td>
          <td class="paramname"><em>device</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structob__error.html">ob_error</a> **&#160;</td>
          <td class="paramname"><em>error</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>send the timestamp reset command to the device. </p>
<p>The device will reset the timer for calculating the timestamp for output frames to 0 after receiving the timestamp reset command when the timestamp reset function is enabled. The timestamp reset function can be enabled by call <a class="el" href="MultipleDevices_8h.html#a293ead22918e776ce10334e26e20d313">ob_device_set_timestamp_reset_config</a>.</p>
<dl class="section attention"><dt>Attention</dt><dd>If the stream of the device is started, the timestamp of the continuous frames output by the stream will jump once after the timestamp reset. </dd>
<dd>
Due to the timer of device is not high-accuracy, the timestamp of the continuous frames output by the stream will drift after a long time. User can call this function periodically to reset the timer to avoid the timestamp drift, the recommended interval time is 60 minutes.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">device</td><td>The device handle. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">error</td><td>The error information. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a3c4c68af4d9217991d87c128c593cd36" name="a3c4c68af4d9217991d87c128c593cd36"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3c4c68af4d9217991d87c128c593cd36">&#9670;&#160;</a></span>ob_device_timer_sync_with_host()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ob_device_timer_sync_with_host </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="ObTypes_8h.html#a3c87c98acfd9b143bb58c731d95fa437">ob_device</a> *&#160;</td>
          <td class="paramname"><em>device</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structob__error.html">ob_error</a> **&#160;</td>
          <td class="paramname"><em>error</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>synchronize the timer of the device with the host. </p>
<p>After calling this function, the timer of the device will be synchronized with the host. User can call this function to multiple devices to synchronize all timers of the devices.</p>
<dl class="section attention"><dt>Attention</dt><dd>If the stream of the device is started, the timestamp of the continuous frames output by the stream will may jump once after the timer sync. </dd>
<dd>
Due to the timer of device is not high-accuracy, the timestamp of the continuous frames output by the stream will drift after a long time. User can call this function periodically to synchronize the timer to avoid the timestamp drift, the recommended interval time is 60 minutes.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">device</td><td>The device handle. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">error</td><td>The error information. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Sat May 11 2024 17:13:38 for OrbbecSDK by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.7
</small></address>
</body>
</html>
